﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ServiceGerenciador.Model;

public partial class paginas_FornecedorNovo : System.Web.UI.Page
{
    protected int ModelId
    {
        get
        {
            if (Request.QueryString["Id"] != null)
            {
                return Convert.ToInt32(Request.QueryString["Id"]);
            }
            else
            {
                return 0;
            }
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //retona vetor: FindAll();
            var pessoas = Person.FindAll();

            ddlPessoa.DataSource = pessoas;
            ddlPessoa.DataTextField = "Nome";
            ddlPessoa.DataValueField = "Id";
            ddlPessoa.DataBind();
            ddlPessoa.Items.Insert(0, "-- SELECIONE --");

            //retona vetor: FindAll();
            var produtos = Prod.FindAll();

            ddProdutos.DataSource = produtos;
            ddProdutos.DataTextField = "produto";
            ddProdutos.DataValueField = "idProduto";
            ddProdutos.DataBind();
            ddProdutos.Items.Insert(0, "-- SELECIONE --");
        }

        Initialize();
    }

    private void Initialize()
    {
        if (!IsPostBack)
        {
            if (this.ModelId > 0)
            {
                //Forne forne = new Forne();
                //forne = Forne.Find(ModelId);

                //Prod prod = new Prod();
                //prod = Prod.Find(ModelId);

                //ddlPessoa.SelectedValue = Convert.ToString(forne.Pessoa);                    
                //ddProdutos.SelectedValue = Convert.ToString(prod.idProduto);                    

                ForneProd forneprod = new ForneProd();
                forneprod = ForneProd.Find(ModelId);

                ddlPessoa.SelectedValue = Convert.ToString(forneprod.Pes.Id);
                ddProdutos.SelectedValue = Convert.ToString(forneprod.Produto.idProduto);                    
            }
        }
    }
    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (ModelId > 0)
            {
                Forne forne = new Forne();
                forne = Forne.Find(ModelId);

                forne.Pessoa = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                //ddlPessoa.SelectedValue = Convert.ToString(forne.Pessoa.Id);                
                forne.Update();

                ForneProd forneprod = new ForneProd();
                forneprod = ForneProd.Find(ModelId);

                forneprod.Pes = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                forneprod.Produto = Prod.Find(Convert.ToInt32(ddProdutos.SelectedValue));
                forneprod.Update();

                ApplicationEnvironment.Instance.Flash["Notice"] = "Fornecedor atualizado com sucesso!";

                Response.Redirect("Fornecedores.aspx");
            }
            else
            {

                Forne forne = null;
                forne = new Forne();

                forne.Pessoa = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                forne.Save();


                ForneProd forneprod = null;
                forneprod = new ForneProd();
                
                forneprod.Pes = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                forneprod.Produto = Prod.Find(Convert.ToInt32(ddProdutos.SelectedValue));                               
                forneprod.Save();

                ApplicationEnvironment.Instance.Flash["Notice"] = "Fornecedor cadastrado com sucesso!";

                Response.Redirect("Fornecedores.aspx");
            }
        }
    }
   
    protected void btnExcluir_Click(object sender, EventArgs e)
    {
        ForneProd forneprod = ForneProd.Find(ModelId);
        forneprod.Delete();  
        //ICriterion[] pesq = 
        //    {
        //        Expression.Eq("idProduto", forneprod.Produto.idProduto),
        //        Expression.Eq("idPessoa", forneprod.Pes.Id),
        //    };

        //return FindAll(pesq).FirstOrDefault();

        //var produto = FindAll();
        //return produto.Where((p) => p.produto.ToUpper().Contains(termo.ToUpper())).ToArray();            
        

        ApplicationEnvironment.Instance.Flash["Notice"] = "Fornecedor excluído com sucesso!";

        Response.Redirect("Fornecedores.aspx");
    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("Fornecedores.aspx");
    }
}
